package com.ht.api.call.func.impl.official;

import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.db.Db;
import com.ht.api.db.Entity;
import com.ht.api.db.exception.HtException;
import com.ht.api.open.OpenUtil;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

/**
 * 删除公众号客服账号
 * @author asq
 * @createTime 2025年3月9日 09:11:00
 */
@Deprecated
public class OfficialKfAccountDelFunctionCall implements IFunctionCall {
	/** 接口ID：删除客服账号 */
	private static final long API_ID = 1909503745360793600L;

	@Override
	public String getName() {
		return "删除公众号客服账号";
	}

	@Override
	public JSONObject execute(LoginBean me, JSONObject param, AjaxResult result) {
		String paramMainId = param.getStr("main_id");
		Entity kfAccountEntity = Db.createSqlParser("wx_official_kf_account").select("kf_account,appid")
				.findById(me.getDataSource(), paramMainId);

		// 调用企微接口删除账号
		String appId = kfAccountEntity.getStr("appid");
		String kfAccount = kfAccountEntity.getStr("kf_account");
		String str = OpenUtil.call(appId, API_ID, JSONUtil.createObj().set("kf_account", kfAccount));
		
		// 如果企微接口调用成功，则操作本地数据库
		JSONObject obj = JSONUtil.parseObj(str);
		if (obj.getInt("errcode") == 0) {
			Db.delete(me.getDataSource(), kfAccountEntity);
		} else {
			throw new HtException("公众号接口返回错误：" + obj.getStr("errmsg"));
		}
		
		return JSONUtil.createObj();
	}

}
